<?php
/**
 * Created by PhpStorm.
 * Author: ljz
 * Date: 2023/5/16
 * Time: 17:07
 */

namespace App\backend\models;


use App\common\models\BaseModel;
use Illuminate\Support\Facades\DB;

/**
 * Class AdminRoleUsersModel
 * @package app\backend\models
 */
class AdminRoleMenuModel extends BaseModel
{
    const table = 'admin_role_menu';
    const status = 0;

    public function __construct() {

    }

    /**
     * 数据库 - 根据菜单权限关系，菜单路由列表
     * @param $id int //权限id
     * @return array
     */
    static public function getMenuRoleList($id = 0)
    {
        $query = DB::table(self::table)
            ->leftJoin('admin_menu', 'admin_menu.id', '=', 'admin_role_menu.menu_id')
            ->select('admin_menu.id', 'admin_menu.parent_id', 'admin_menu.order', 'admin_menu.title', 'admin_menu.icon', 'admin_menu.uri')
            ->where('admin_role_menu.status', '=',self::status)
            ->where('admin_role_menu.role_id', $id);

        return $query->get()->toArray();
    }

    /**
     * 数据库 - 根据菜单权限关系，菜单路由列表
     * @param $id int //权限id
     * @return array
     */
    static public function getRoleMenuUriList($id = 0)
    {
        $query = DB::table(self::table)
            ->leftJoin('admin_menu', 'admin_menu.id', '=', 'admin_role_menu.menu_id')
            ->select('admin_menu.uri')
            ->where('admin_role_menu.status', '=',self::status)
            ->where('admin_role_menu.role_id', $id);

        return $query->get()->toArray();
    }

    /**
     * 数据库 - 查询数据
     * @param $data //参数数组 查询条件
     * @return array
     */
    static public function getFirst($data)
    {
        $data = DB::table(self::table)->select('id')->where($data)->first();
        return $data;
    }

    /**
     * 数据库 - 更新数据
     * @param $whereData //条件参数数组
     * @param $data //参数数组
     * @return array
     */
    static public function updatedData($whereData, $data)
    {
        $data = DB::table(self::table)->where($whereData)->update($data);
        return $data;
    }

    /**
     * 数据库 - 插入数据
     * @param $data //参数数组
     * @return array
     */
    static public function insertData($data)
    {
        $data = DB::table(self::table)->insert($data);
        return $data;
    }

}
